21
תגובות
עם איזה פונקציה מדפיסים שאילתא?
21 תשובות
כדי לראות האם היא תקינה בתחביר שלה ?
אני לא חושב שיש אחת כזו . צריך פשוט להעתיק את מה שבמרחאות ולהדפיס אותו...
ענה
iiddaannyy
ב
24 לאוגוסט 2012
#
שום פונקציה. תדפיס עם echo.
אני רוצה לעשות משהו כמו זה אבל שעובד
mysql_select_db("user", $ConnectDB);
$result = mysql_query("SELECT Name FROM user");
print $result;
$result = mysql_query("SELECT Name FROM user");
print $result;
$result = mysql_query("SELECT Name FROM user");
$array = mysql_fetch_array($result);
echo $array['username'];
$array = mysql_fetch_array($result);
echo $array['username'];
ענה
iiddaannyy
ב
24 לאוגוסט 2012
#
fetch_array זה בזבוז. תשתמש ב-fetch_assoc או fech_row.
כי המצביע הפנימי של הפונקציה הזאת מתחיל מהשורה הראשונה. ל-php אין מושג באיזו צורה אתה תרצה להדפיס את השורות והאם בכלל תרצה להדפיס את כולן, לכן הוא משאיר את זה לך. כל זימון חדש שלה יזיז את המצביע הפנימי קדימה. לכן אתה יכול להשתמש בלולאה.
אז איך זה שאני כותב פעמיים את השורה
print $array[Name];
זה מראה לי את אותו ערך
כתבתי את זה
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
printf($row[1]);
}
{
printf($row[1]);
}
אבל את השורה הראשונה הוא לא מדפיס
ענה
iiddaannyy
ב
24 לאוגוסט 2012
#
@soogo
אתה צריך לזמן את fetch שוב כדי לקבל את השורה הבאה.
$q = mysql_query("SELECT `name` FROM `table`");
$r = mysql_fetch_assoc($q);
echo $r['name'];
$r = mysql_fetch_assoc($q);
echo $r['name'];
..
..
..
..
$r = mysql_fetch_assoc($q);
echo $r['name'];
$r = mysql_fetch_assoc($q);
echo $r['name'];
..
..
..
..
בפעם הראשונה נדפיס את העמודה name של השורה הראשונה, בפעם השנייה את name של השורה השנייה וכו' וכו'.
לרוב, עושים את זה עם while:
while ($r = mysql_fetch_assoc($q)) {
echo $r['name'];
}
echo $r['name'];
}
זה ידפיס לנו את העמודה name מכל השורות שחזרו מהשאילתה, שורה אחר שורה.
מה שקורה, זה שפונקציות ה-fetch למינהן מחזירות false כשאין יותר שורות. כל עוד יש שורות הן יחזירו את התוצאה במערך/אובייקט (תלוי באיזו פונקציה השתמשנו). מערך/אובייקט נחשב ל-true (מערך/אובייקט לא ריק, אבל fetch לא יכולה להחזיר מערך/אובייקט ריק).
לכן - כל עוד יש עוד שורות זמינות מהשאילתה, ה-while ימשיך לרוץ וכל פעם תכנס למשתנה r השורה הבאה. ברגע שלא יהיו עוד שורות, fetch תחזיר false והלולאה תיעצר.
ענה
ArielTador
ב
24 לאוגוסט 2012
#
$result = "SELECT * FROM `table` WHERE `row`='row1'";
mysql_query($result);
mysql_query($result);
ענה
ArielTador
ב
24 לאוגוסט 2012
#
מה שטויות בזה?, הוא לא יודע להמשיך אחרי זה עם mysql_fetch_assoc() ?
ענה
iiddaannyy
ב
24 לאוגוסט 2012
#
בשביל מה fetch_assoc לפני ה-while? אתה מאבד שורה ככה.